package com.coffee.sku.service.sku.dao;

import com.coffee.sku.api.sku.query.SkuSalesInformationQuery;
import com.coffee.sku.service.sku.bean.SkuSalesInformation;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SkuSalesInformationDao {
    public SkuSalesInformation findById(Integer id);

    public List<Integer> findSkuSalesInformationIdBySkuId(Integer skuId);

    public List<Integer> findSkuSalesInformationIdBySkuIdAndPeriodization(Integer skuId);

    public SkuSalesInformation findByIdForUpdate(Integer id);

    public List<SkuSalesInformation> findByIds(@Param("idList") List<Integer> idList);

    public Integer count(@Param("param") SkuSalesInformationQuery param);

    public List<SkuSalesInformation> page(@Param("param") SkuSalesInformationQuery param, @Param("offset") Integer offset, @Param("rows") Integer rows);

    public List<SkuSalesInformation> list(@Param("param") SkuSalesInformationQuery param);

    public SkuSalesInformation findFirst(@Param("param") SkuSalesInformationQuery param);

    public Integer insert(SkuSalesInformation param);

    Integer insertBatch(List<SkuSalesInformation> list);

    public void updateById(@Param("param") SkuSalesInformation param);

    public Integer deleteById(Integer id);

    public Integer deleteBySkuIdAndType(@Param("skuId") Integer skuId, @Param("type") String type);

    public Integer deleteBySkuIdAndBelongSkuId(@Param("skuId") Integer skuId, @Param("belongSkuId") Integer belongSkuId);

    public Integer deleteByIds(@Param("list") List<Integer> idList, @Param("type") String type);

    public Integer addStock(@Param("id") Integer id, @Param("integral") Integer integral);

    public Integer deleteStock(@Param("id") Integer id, @Param("stock") Integer stock);

}